﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Web;
using System.Web.Mvc;
using ComparteTuTiempo.Models;
using ComparteTuTiempo.Models.BusquedaModelClass;
using ComparteTuTiempo.Models.CustomEmail;

namespace ComparteTuTiempo.Controllers
{
    public class HomeController : Controller
    {
        private compartetutiempoEntities db = new compartetutiempoEntities();

        public ActionResult Index()
        {
            ViewBag.provincia = new SelectList(db.provincias.OrderBy(x => x.nombre), "idProvincias", "nombre");
            ViewBag.profesiones = new SelectList(db.profesiones.OrderBy(x => x.nombre), "idProfesiones", "nombre");
            return View();
        }

        [HttpPost]
        public ActionResult Index(BusquedaModelClass usu)
        {
            ViewBag.provincia = new SelectList(db.provincias.OrderBy(x => x.nombre), "idProvincias", "nombre");
            ViewBag.profesiones = new SelectList(db.profesiones.OrderBy(x => x.nombre), "idProfesiones", "nombre");
            
            return RedirectToAction("busqueda","Usuarios", usu) ;
        }

        public ActionResult About()
        {
            return View();
        }

        public ActionResult Contact()
        {
            //ViewBag.Message = "Your contact page.";

            return View();
        }

        [HttpPost]
        public ActionResult Contact(CustomEmail postEmail)
        {
            //ViewBag.Message = "Your contact page.";

            if (ModelState.IsValid)
            {
                System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
                //msg.To.Add("destinatario@dominio.com");
                msg.To.Add("compartetutiemp00@gmail.com");
                //msg.From = new MailAddress("micuenta@gmail.com", "Tu Nombre", System.Text.Encoding.UTF8);
                msg.From = new MailAddress("compartetutiemp00@gmail.com", postEmail.Email, System.Text.Encoding.UTF8);
                msg.Subject = postEmail.Cabecera;
                msg.SubjectEncoding = System.Text.Encoding.UTF8;
                msg.Body = "Email: " + postEmail.Email + " Cuerpo: " + postEmail.Cuerpo;
                msg.BodyEncoding = System.Text.Encoding.UTF8;
                msg.IsBodyHtml = false;

                //Aquí es donde se hace lo especial
                SmtpClient client = new SmtpClient();
                //client.Credentials = new System.Net.NetworkCredential("micuenta@gmail.com", "miclave");
                client.Credentials = new System.Net.NetworkCredential("compartetutiemp00@gmail.com", "alexcarlosjaime");
                client.Port = 587;
                client.Host = "smtp.gmail.com";
                client.EnableSsl = true; //Esto es para que vaya a través de SSL que es obligatorio con GMail
                try
                {
                    client.Send(msg);
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.ReadLine();
                }

            }


            return View();
        }
    }
}
